package com.yss.sofa.framework.services.report;

import java.util.Map;

/**
 * 报表分页执行生成器的控制器，每执行一页就回调一次
 */
public interface ReportExecuteYield {
	/**
	 * 控制报表分页执行，通过返回值来决定下一次执行哪一页（或中断）
	 * @param index 当前页（0=第一页）
	 * @param count 总页数（仅针对本次执行有效，下次可能不同，因为count是动态计算的）
	 * @param data 当前页的原始数据，key=报表执行后的sheet名称
	 * @return 下一次的页码，若要中断请返回 <0 或 >=count 的值，一般只要return index+1;即可
	 */
	public int yield(int index,int count,Map<String,String[][]> data);
}
